<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // let,const
        1. 会产生块级作用域
        2. 不会产生变量提升
        3. 暂时性死区 
        4. 不能重复声明
        5. 在全局使用let或const定义的变量默认不会挂载到window对象身上

        const更严格 基本数据类型不能重复赋值 如果是引用类型 地址不能修改
        
        // 解构赋值
        数组 [a,b] = [b,a]
        对象 let {random,max,ceil,floor} = Math;
        let fn = ({username,age})=>{
            username 
            age 
        }
        fn({username:'zs',age:20})
        // 箭头函数
        有几个地方不要用
        1. btn.onclick = callback 
        2. 构造函数
        3. 对象的方法也不要用
        // 剩余参数
        let fn = (...args)=>{

        }

        代替arguments伪数组 push pop shift 
        // 扩展运算符
        合并数组
        拷贝数组
        合并对象
        拷贝对象
        
        深拷贝：
        1、递归 
        2、特殊情况（对象没有方法） 可以用

        var obj = {name:'itcast'}
        JSON.parse(JOSN.stringify(obj))

        // 数组相关的方法
        Array.from 
        find 
        findIndex 
        includes 
        map 
        reduce 

        //字符串相关的方法
        startsWith 
        endsWith 
        repeat 

        
        var arr1 = [2,3,4,5,6,7,2,3,4];
        var arr2 = [5,6,7,8,9,10];


    </script>
</body>
</html>